package com.wobito.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wobito.pojo.bean.CabinetLat;
import com.wobito.pojo.dto.cabinetLat.CabinetLatDTO;
import com.wobito.pojo.dto.cabinetLat.LatAllAdminDTO;
import com.wobito.pojo.dto.cabinetLat.LatBriefDTO;
import com.wobito.pojo.dto.cabinetLat.LatByCabinetDTO;
import com.wobito.pojo.vo.cabinetLat.AddCabinetLatVO;
import com.wobito.pojo.vo.cabinetLat.CabinetLatUpdateVO;
import com.wobito.pojo.vo.cabinetLat.UpdateCabinetLatVO;

import java.util.List;

/**
 * @Author Wangbaba
 * @Date 2024/7/1 10:14
 * @Version 1.0
 */
public interface CabinetLatService extends IService<CabinetLat> {

    /**
     * 查询柜子下所有柜格
     * @param cabinetId
     * @return
     */
    List<CabinetLatDTO> selectCabinetLatList(Long cabinetId);

    /**
     * 根据柜子ID获取柜格下拉框
     * @param cabinetId
     * @return
     */
    List<LatBriefDTO> selectBrief(Long cabinetId);

    /**
     * 根据柜格ID获取柜子ID
     * @return
     */
    Long selectCabinetIdBylLatId(Long cabinetId);

    /**
     * 查询所有正常状态柜格
     */
    List<LatByCabinetDTO> selectCabinetLats(Long cabinetId);

    /**
     * 根据柜子ID获取柜格编号
     * @return
     */
    List<LatAllAdminDTO> selectCabinetLatCodes(Long cabinetId);

    /**
     * 添加柜格
     */
    int insertCabinetLat(AddCabinetLatVO addCabinetLatVO);

    /**
     * 修改柜格
     */
    int updateLat(UpdateCabinetLatVO updateCabinetLatVO);

    /**
     * 修改柜格
     */
    int updateCabinetLat(CabinetLatUpdateVO cabinetLatUpdateVO);

    /**
     * 多编号修改柜格状态
     */
    int updateCabinetLatByCodes(Long cabinetId,List<Integer> codes);

    /**
     * 删除柜格(停用)
     */
    int deleteCabinetLat();
}
